package com.education.ai.repository;

import com.education.ai.entity.StudentAnalysis;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 学情分析数据访问接口
 */
@Repository
public interface StudentAnalysisRepository extends JpaRepository<StudentAnalysis, Long> {

    /**
     * 根据学生ID查询学情分析
     */
    List<StudentAnalysis> findByStudentId(String studentId);

    /**
     * 根据学生ID和学科查询学情分析
     */
    StudentAnalysis findByStudentIdAndSubject(String studentId, String subject);

    /**
     * 根据学生ID、学科和年级查询学情分析
     */
    StudentAnalysis findByStudentIdAndSubjectAndGrade(String studentId, String subject, String grade);

    /**
     * 查询某个知识掌握水平的学生分析列表
     */
    List<StudentAnalysis> findByKnowledgeLevel(String knowledgeLevel);

    /**
     * 根据学科查询学情分析
     */
    List<StudentAnalysis> findBySubject(String subject);

    /**
     * 根据年级查询学情分析
     */
    List<StudentAnalysis> findByGrade(String grade);

    /**
     * 根据学习风格查询学情分析
     */
    List<StudentAnalysis> findByLearningStyle(String learningStyle);

    /**
     * 查询包含特定薄弱点的学情分析
     */
    @Query("SELECT sa FROM StudentAnalysis sa WHERE sa.weakPoints LIKE %:weakPoint%")
    List<StudentAnalysis> findByWeakPoint(@Param("weakPoint") String weakPoint);
} 